﻿function Solonumeros() {
    var key = window.event.keyCode;
    if (key < 48 || key > 57) {
        if (key != 46) {
            window.event.keyCode = 0;
        }
    }
}

function ValidarEntero(numero) {
    numero = parseInt(numero);
    if (isNaN(numero)) {
        alert('Ingrese un numero entero válido');
        return false;
    }
    else {
        return true;
    }
}

function f_SoloNumero(strNameObj) {
    //alert("ver")
    var Obj = document.all[strNameObj];
    var intEncontrado = "1234567890".indexOf(String.fromCharCode(window.event.keyCode));
    if (intEncontrado == -1) {
        window.event.keyCode = 0;
    }
}
function f_SoloNumeroyGuion(strNameObj) {
    //alert("ver")
    var Obj = document.all[strNameObj];
    var intEncontrado = "1234567890-".indexOf(String.fromCharCode(window.event.keyCode));
    if (intEncontrado == -1) {
        window.event.keyCode = 0;
    }
}

function f_SoloLetras(strNameObj) {
    //alert("ver")
    var Obj = document.all[strNameObj];
    var intEncontrado = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ".indexOf(String.fromCharCode(window.event.keyCode));
    if (intEncontrado == -1) {
        window.event.keyCode = 0;
    }

    function soloLetras(e) {
        key = e.keyCode || e.which;
        tecla = String.fromCharCode(key).toLowerCase();
        letras = " áéíóúabcdefghijklmnñopqrstuvwxyz";
        especiales = [8, 37, 39, 46];

        tecla_especial = false
        for (var i in especiales) {
            if (key == especiales[i]) {
                tecla_especial = true;
                break;
            }
        }

        if (letras.indexOf(tecla) == -1 && !tecla_especial) {
            return false;
        }
    }


    function f_SoloLetras(strNameObj) {
        //alert("ver")
        var Obj = document.all[strNameObj];
        var intEncontrado = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ".indexOf(String.fromCharCode(window.event.keyCode));
        if (intEncontrado == -1) {
            window.event.keyCode = 0;
        }

    }

    function f_SoloLetrasNumeros(strNameObj) {
        //alert("ver")
        var Obj = document.all[strNameObj];
        var intEncontrado = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".indexOf(String.fromCharCode(window.event.keyCode));
        if (intEncontrado == -1) {
            window.event.keyCode = 0;
        }
    }
    function f_SoloNumeroPunto(strNameObj) {
        //alert("ver")
        var Obj = document.all[strNameObj];
        var intEncontrado = "1234567890.°".indexOf(String.fromCharCode(window.event.keyCode));
        if (intEncontrado == -1) {
            window.event.keyCode = 0;
        }
    }
    function reenviar(pagina, accion, id) {
        var t_accion;
        var t_xID;

        t_accion = document.getElementById('ctl00_ContentPlaceHolder1_accion')
        t_xID = document.getElementById('ctl00_ContentPlaceHolder1_xID')

        t_accion.value = accion;
        t_xID.value = id;

        document.aspnetForm.action = pagina;
        document.aspnetForm.submit();
    }

    function edita_permisos(pagina, accion, id) {
        var t_accion;
        var t_xID;
        t_accion = document.getElementById('ContentPlaceHolder1_accion')
        t_xID = document.getElementById('ContentPlaceHolder1_xID')

        t_accion.value = accion;
        t_xID.value = id;

        document.aspnetForm.action = pagina;
        document.aspnetForm.submit();
    }
    function ver(pagina) {

        document.aspnetForm.action = pagina;
        document.aspnetForm.submit();
    }
    function Resaltar_On(GridView) {
        if (GridView != null) {
            GridView.originalBgColor = GridView.style.backgroundColor;
            GridView.style.backgroundColor = "#DBE7F6";
        }
    }


    //no resaltar la grilla
    function Resaltar_Off(GridView) {
        if (GridView != null) {
            GridView.style.backgroundColor = GridView.originalBgColor;
        }
    }

    ///luis
    function ValidaCampoTipo(campo, tipo) {

        var patron
        switch (tipo) {
            case "Fecha": patron = /^([0-9]|[0,1,2][0-9]|3[0,1])\/([\d]|1[0,1,2])\/\d{4}$/; break;
            case "Ruc": patron = /^\d{11}/; break;
            case "Dni": patron = /^\d{8}/; break;
            case "Email": patron = /^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$/; break;
            case "Periodo": patron = /^([\d]|1[0,1,2])\/\d{4}$/; break;
            case "Digito": patron = /\d/; break;
            case "Entero": patron = /([\+\-])?\d/; break;
            case "EnteroPositivo": patron = /\+?\d/; break;
            case "Decimal": patron = /[\+\-]?(\.\d+)|(\d+\.?)|(\d+.\d+)/; break;
            case "DecimalPositivo": patron = /\+?(\.\d+)|(\d+\.?)|(\d+.\d+)/; break;
            default: campo.focus(); break;
        }
        if (!campo.value.match(patron) && campo.value != "") {
            campo.focus();
        }
    }
    /*  
    ValidaCampoTipo     ValidaCaracterTipo
    Fecha               Fecha
    Ruc                 Digito
    Dni                 Digito
    Email               Email
    Periodo             Fecha
    Digito              Digito
    Entero              Numero
    EnteroPositivo      Numero
    Decimal             Numero
    DecimalPositivo     Numero

    */



    function ValidaCampoPatron(campo, patron) {
        if (!campo.value.match(patron) && campo.value != "") {
            campo.focus();
        }
    }
    function ValidaCaracterTipo(e, tipo) {
        var patron
        switch (tipo) {
            case "Fecha": patron = /[\d\/]/; break;
            case "Digito": patron = /\d/; break;
            case "Numero": patron = /[\d\+\-\.\,]/; break;
            case "Email": patron = /[\w\.\-\_\@]/; break;
            default: campo.focus(); break;
        }
        tecla = (document.all) ? e.keyCode : e.which;
        if (tecla == 8) return true;
        te = String.fromCharCode(tecla);
        return patron.test(te);
    }

    function ValidaCaracterPatron(evento, patron) {
        tecla = (document.all) ? evento.keyCode : evento.which;
        if (tecla == 8) return true;
        te = String.fromCharCode(patron);
        return patron.test(te);
    }



    ///Formatos 

    // mredkj.com
//    function NumberFormat(num, inputDecimal) {
//        this.VERSION = 'Number Format v1.5.4';
//        this.COMMA = ',';
//        this.PERIOD = '.';
//        this.DASH = '-';
//        this.LEFT_PAREN = '(';
//        this.RIGHT_PAREN = ')';
//        this.LEFT_OUTSIDE = 0;
//        this.LEFT_INSIDE = 1;
//        this.RIGHT_INSIDE = 2;
//        this.RIGHT_OUTSIDE = 3;
//        this.LEFT_DASH = 0;
//        this.RIGHT_DASH = 1;
//        this.PARENTHESIS = 2;
//        this.NO_ROUNDING = -1
//        this.num;
//        this.numOriginal;
//        this.hasSeparators = false;
//        this.separatorValue;
//        this.inputDecimalValue;
//        this.decimalValue;
//        this.negativeFormat;
//        this.negativeRed;
//        this.hasCurrency;
//        this.currencyPosition;
//        this.currencyValue;
//        this.places;
//        this.roundToPlaces;
//        this.truncate;
//        this.setNumber = setNumberNF;
//        this.toUnformatted = toUnformattedNF;
//        this.setInputDecimal = setInputDecimalNF;
//        this.setSeparators = setSeparatorsNF;
//        this.setCommas = setCommasNF;
//        this.setNegativeFormat = setNegativeFormatNF;
//        this.setNegativeRed = setNegativeRedNF;
//        this.setCurrency = setCurrencyNF;
//        this.setCurrencyPrefix = setCurrencyPrefixNF;
//        this.setCurrencyValue = setCurrencyValueNF;
//        this.setCurrencyPosition = setCurrencyPositionNF;
//        this.setPlaces = setPlacesNF;
//        this.toFormatted = toFormattedNF;
//        this.toPercentage = toPercentageNF;
//        this.getOriginal = getOriginalNF;
//        this.moveDecimalRight = moveDecimalRightNF;
//        this.moveDecimalLeft = moveDecimalLeftNF;
//        this.getRounded = getRoundedNF;
//        this.preserveZeros = preserveZerosNF;
//        this.justNumber = justNumberNF;
//        this.expandExponential = expandExponentialNF;
//        this.getZeros = getZerosNF;
//        this.moveDecimalAsString = moveDecimalAsStringNF;
//        this.moveDecimal = moveDecimalNF;
//        this.addSeparators = addSeparatorsNF;
//        if (inputDecimal == null) {
//            this.setNumber(num, this.PERIOD);
//        } else {
//            this.setNumber(num, inputDecimal);
//        }
//        this.setCommas(true);
//        this.setNegativeFormat(this.LEFT_DASH);
//        this.setNegativeRed(false);
//        this.setCurrency(false);
//        this.setCurrencyPrefix('$');
//        this.setPlaces(2);
//    }
//    function setInputDecimalNF(val) {
//        this.inputDecimalValue = val;
//    }
//    function setNumberNF(num, inputDecimal) {
//        if (inputDecimal != null) {
//            this.setInputDecimal(inputDecimal);
//        }
//        this.numOriginal = num;
//        this.num = this.justNumber(num);
//    }
//    function toUnformattedNF() {
//        return (this.num);
//    }
//    function getOriginalNF() {
//        return (this.numOriginal);
//    }
//    function setNegativeFormatNF(format) {
//        this.negativeFormat = format;
//    }
//    function setNegativeRedNF(isRed) {
//        this.negativeRed = isRed;
//    }
//    function setSeparatorsNF(isC, separator, decimal) {
//        this.hasSeparators = isC;
//        if (separator == null) separator = this.COMMA;
//        if (decimal == null) decimal = this.PERIOD;
//        if (separator == decimal) {
//            this.decimalValue = (decimal == this.PERIOD) ? this.COMMA : this.PERIOD;
//        } else {
//            this.decimalValue = decimal;
//        }
//        this.separatorValue = separator;
//    }
//    function setCommasNF(isC) {
//        this.setSeparators(isC, this.COMMA, this.PERIOD);
//    }
//    function setCurrencyNF(isC) {
//        this.hasCurrency = isC;
//    }
//    function setCurrencyValueNF(val) {
//        this.currencyValue = val;
//    }
//    function setCurrencyPrefixNF(cp) {
//        this.setCurrencyValue(cp);
//        this.setCurrencyPosition(this.LEFT_OUTSIDE);
//    }
//    function setCurrencyPositionNF(cp) {
//        this.currencyPosition = cp
//    }
//    function setPlacesNF(p, tr) {
//        this.roundToPlaces = !(p == this.NO_ROUNDING);
//        this.truncate = (tr != null && tr);
//        this.places = (p < 0) ? 0 : p;
//    }
//    function addSeparatorsNF(nStr, inD, outD, sep) {
//        nStr += '';
//        var dpos = nStr.indexOf(inD);
//        var nStrEnd = '';
//        if (dpos != -1) {
//            nStrEnd = outD + nStr.substring(dpos + 1, nStr.length);
//            nStr = nStr.substring(0, dpos);
//        }
//        var rgx = /(\d+)(\d{3})/;
//        while (rgx.test(nStr)) {
//            nStr = nStr.replace(rgx, '$1' + sep + '$2');
//        }
//        return nStr + nStrEnd;
//    }
//    function toFormattedNF() {
//        var pos;
//        var nNum = this.num;
//        var nStr;
//        var splitString = new Array(2);
//        if (this.roundToPlaces) {
//            nNum = this.getRounded(nNum);
//            nStr = this.preserveZeros(Math.abs(nNum));
//        } else {
//            nStr = this.expandExponential(Math.abs(nNum));
//        }
//        if (this.hasSeparators) {
//            nStr = this.addSeparators(nStr, this.PERIOD, this.decimalValue, this.separatorValue);
//        } else {
//            nStr = nStr.replace(new RegExp('\\' + this.PERIOD), this.decimalValue);
//        }
//        var c0 = '';
//        var n0 = '';
//        var c1 = '';
//        var n1 = '';
//        var n2 = '';
//        var c2 = '';
//        var n3 = '';
//        var c3 = '';
//        var negSignL = (this.negativeFormat == this.PARENTHESIS) ? this.LEFT_PAREN : this.DASH;
//        var negSignR = (this.negativeFormat == this.PARENTHESIS) ? this.RIGHT_PAREN : this.DASH;
//        if (this.currencyPosition == this.LEFT_OUTSIDE) {
//            if (nNum < 0) {
//                if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
//                if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
//            }
//            if (this.hasCurrency) c0 = this.currencyValue;
//        } else if (this.currencyPosition == this.LEFT_INSIDE) {
//            if (nNum < 0) {
//                if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
//                if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
//            }
//            if (this.hasCurrency) c1 = this.currencyValue;
//        }
//        else if (this.currencyPosition == this.RIGHT_INSIDE) {
//            if (nNum < 0) {
//                if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n0 = negSignL;
//                if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n3 = negSignR;
//            }
//            if (this.hasCurrency) c2 = this.currencyValue;
//        }
//        else if (this.currencyPosition == this.RIGHT_OUTSIDE) {
//            if (nNum < 0) {
//                if (this.negativeFormat == this.LEFT_DASH || this.negativeFormat == this.PARENTHESIS) n1 = negSignL;
//                if (this.negativeFormat == this.RIGHT_DASH || this.negativeFormat == this.PARENTHESIS) n2 = negSignR;
//            }
//            if (this.hasCurrency) c3 = this.currencyValue;
//        }
//        nStr = c0 + n0 + c1 + n1 + nStr + n2 + c2 + n3 + c3;
//        if (this.negativeRed && nNum < 0) {
//            nStr = '<font color="red">' + nStr + '</font>';
//        }
//        return (nStr);
//    }
//    function toPercentageNF() {
//        nNum = this.num * 100;
//        nNum = this.getRounded(nNum);
//        return nNum + '%';
//    }
//    function getZerosNF(places) {
//        var extraZ = '';
//        var i;
//        for (i = 0; i < places; i++) {
//            extraZ += '0';
//        }
//        return extraZ;
//    }
//    function expandExponentialNF(origVal) {
//        if (isNaN(origVal)) return origVal;
//        var newVal = parseFloat(origVal) + '';
//        var eLoc = newVal.toLowerCase().indexOf('e');
//        if (eLoc != -1) {
//            var plusLoc = newVal.toLowerCase().indexOf('+');
//            var negLoc = newVal.toLowerCase().indexOf('-', eLoc);
//            var justNumber = newVal.substring(0, eLoc);
//            if (negLoc != -1) {
//                var places = newVal.substring(negLoc + 1, newVal.length);
//                justNumber = this.moveDecimalAsString(justNumber, true, parseInt(places));
//            } else {
//                if (plusLoc == -1) plusLoc = eLoc;
//                var places = newVal.substring(plusLoc + 1, newVal.length);
//                justNumber = this.moveDecimalAsString(justNumber, false, parseInt(places));
//            }
//            newVal = justNumber;
//        }
//        return newVal;
//    }
//    function moveDecimalRightNF(val, places) {
//        var newVal = '';
//        if (places == null) {
//            newVal = this.moveDecimal(val, false);
//        } else {
//            newVal = this.moveDecimal(val, false, places);
//        }
//        return newVal;
//    }
//    function moveDecimalLeftNF(val, places) {
//        var newVal = '';
//        if (places == null) {
//            newVal = this.moveDecimal(val, true);
//        } else {
//            newVal = this.moveDecimal(val, true, places);
//        }
//        return newVal;
//    }
//    function moveDecimalAsStringNF(val, left, places) {
//        var spaces = (arguments.length < 3) ? this.places : places;
//        if (spaces <= 0) return val;
//        var newVal = val + '';
//        var extraZ = this.getZeros(spaces);
//        var re1 = new RegExp('([0-9.]+)');
//        if (left) {
//            newVal = newVal.replace(re1, extraZ + '$1');
//            var re2 = new RegExp('(-?)([0-9]*)([0-9]{' + spaces + '})(\\.?)');
//            newVal = newVal.replace(re2, '$1$2.$3');
//        } else {
//            var reArray = re1.exec(newVal);
//            if (reArray != null) {
//                newVal = newVal.substring(0, reArray.index) + reArray[1] + extraZ + newVal.substring(reArray.index + reArray[0].length);
//            }
//            var re2 = new RegExp('(-?)([0-9]*)(\\.?)([0-9]{' + spaces + '})');
//            newVal = newVal.replace(re2, '$1$2$4.');
//        }
//        newVal = newVal.replace(/\.$/, '');
//        return newVal;
//    }
//    function moveDecimalNF(val, left, places) {
//        var newVal = '';
//        if (places == null) {
//            newVal = this.moveDecimalAsString(val, left);
//        } else {
//            newVal = this.moveDecimalAsString(val, left, places);
//        }
//        return parseFloat(newVal);
//    }
//    function getRoundedNF(val) {
//        val = this.moveDecimalRight(val);
//        if (this.truncate) {
//            val = val >= 0 ? Math.floor(val) : Math.ceil(val);
//        } else {
//            val = Math.round(val);
//        }
//        val = this.moveDecimalLeft(val);
//        return val;
//    }
//    function preserveZerosNF(val) {
//        var i;
//        val = this.expandExponential(val);
//        if (this.places <= 0) return val;
//        var decimalPos = val.indexOf('.');
//        if (decimalPos == -1) {
//            val += '.';
//            for (i = 0; i < this.places; i++) {
//                val += '0';
//            }
//        } else {
//            var actualDecimals = (val.length - 1) - decimalPos;
//            var difference = this.places - actualDecimals;
//            for (i = 0; i < difference; i++) {
//                val += '0';
//            }
//        }
//        return val;
//    }
//    function justNumberNF(val) {
//        newVal = val + '';
//        var isPercentage = false;
//        if (newVal.indexOf('%') != -1) {
//            newVal = newVal.replace(/\%/g, '');
//            isPercentage = true;
//        }
//        var re = new RegExp('[^\\' + this.inputDecimalValue + '\\d\\-\\+\\(\\)eE]', 'g');
//        newVal = newVal.replace(re, '');
//        var tempRe = new RegExp('[' + this.inputDecimalValue + ']', 'g');
//        var treArray = tempRe.exec(newVal);
//        if (treArray != null) {
//            var tempRight = newVal.substring(treArray.index + treArray[0].length);
//            newVal = newVal.substring(0, treArray.index) + this.PERIOD + tempRight.replace(tempRe, '');
//        }
//        if (newVal.charAt(newVal.length - 1) == this.DASH) {
//            newVal = newVal.substring(0, newVal.length - 1);
//            newVal = '-' + newVal;
//        }
//        else if (newVal.charAt(0) == this.LEFT_PAREN
//&& newVal.charAt(newVal.length - 1) == this.RIGHT_PAREN) {
//            newVal = newVal.substring(1, newVal.length - 1);
//            newVal = '-' + newVal;
//        }
//        newVal = parseFloat(newVal);
//        if (!isFinite(newVal)) {
//            newVal = 0;
//        }
//        if (isPercentage) {
//            newVal = this.moveDecimalLeft(newVal, 2);
//        }
//        return newVal;
//    }




//    var patron = new Array(2, 2, 4)
//    var patron2 = new Array(1, 3, 3, 3, 3)
//    function mascara(d, sep, pat, nums) {
//        if (d.valant != d.value) {
//            val = d.value
//            largo = val.length
//            val = val.split(sep)
//            val2 = ''
//            for (r = 0; r < val.length; r++) {
//                val2 += val[r]
//            }
//            if (nums) {
//                for (z = 0; z < val2.length; z++) {
//                    if (isNaN(val2.charAt(z))) {
//                        letra = new RegExp(val2.charAt(z), "g")
//                        val2 = val2.replace(letra, "")
//                    }
//                }
//            }
//            val = ''
//            val3 = new Array()
//            for (s = 0; s < pat.length; s++) {
//                val3[s] = val2.substring(0, pat[s])
//                val2 = val2.substr(pat[s])
//            }
//            for (q = 0; q < val3.length; q++) {
//                if (q == 0) {
//                    val = val3[q]
//                }
//                else {
//                    if (val3[q] != "") {
//                        val += sep + val3[q]
//                    }
//                }
//            }
//            d.value = val
//            d.valant = val
//        }

